Conventional methods for calculating and determining relevancy between entities involves defining a relationship between each set of two (or more) entities and assigning a “weight” to the relationship. In such methods, each relationship is explicitly defined and weight assigned based on any number of factors.
In some early internet search engines, relationships between search terms and web sites were defined and weight was arbitrarily assigned to those relationships manually. More modern internet search engines use a similar paradigm, but “crawl” websites to gather information and use complex algorithms to programmatically define relationships and assign weights to them. However, even with modern programmatic means of defining relationships and assigning weight, this type of method still requires that each individual relationship and weight still be explicitly stored. In addition, each relationship may have to be maintained twice as the relative weight of a first entity to a second entity may not necessarily be the same as the relative weight of the second entity to the first entity.
While the type of method used by modern internet search engines makes direct relationships easy to define and identify, it has two significant drawbacks. First, in order for it to be effective, each and every relationship must be individually maintained. Thus, it requires a massive amount of data storage and processing power. This is particularly evident as new entities are introduced into the model because on introduction, all applicable relationships must be defined. Second, as the volume of entities grows, the number of relationships grow exponentially and one must either store each relationship explicitly or search an exponential number of relationships. Therefore, complex or inferred relationships are difficult to identify with this method.